.TH DIFF3 1 "22sep1993" "GNU Tools" "GNU Tools"
.SH NAME
diff3 \- find differences between three files
.SH SYNOPSIS
.B diff3
[options] mine older yours
.SH DESCRIPTION
The
.I diff3
command compares three files and outputs descriptions
of their differences.

The files to compare are
.IR mine ,
.IR older ,
and
.IR yours .
At most one of these three file names may be
.BR \- ,
which tells
.I diff3
to read the standard input for that file.
.SS Options
Below is a summary of all of the options that GNU
.I diff3
accepts.  Multiple single letter options (unless they take an argument)
can be combined into a single command line argument.
.TP
.B \-a
Treat all files as text and compare them line-by-line, even if they
do not appear to be text.
.TP
.B \-A
Incorporate all changes from
.I older
to
.I yours
into
.IR mine ,
surrounding all conflicts with bracket lines.
.TP
.B \-B
Old behavior of -A.  Shows non-conflicts.
.TP
.B \-e
Generate an
.I ed
script that incorporates all the changes from
.I older
to
.I yours
into
.IR mine .
.TP
.B \-E
Like
.BR \-e ,
except bracket lines from overlapping changes' first
and third files.
With
.BR \-e ,
an overlapping change looks like this:
.sp
.nf
<<<<<<< \fImine\fP
lines from \fImine\fP
=======
lines from \fIyours\fP
>>>>>>> \fIyours\fP
.fi
.TP
.B \-\-ed
Generate an
.I ed
script that incorporates all the changes from
.I older
to
.I yours
into
.IR mine .
.TP
.B \-\-easy\-only
Like
.BR \-e ,
except output only the nonoverlapping changes.
.TP
.B \-i
Generate
.B w
and
.B q
commands at the end of the
.I ed
script for System V compatibility.  This option must be combined with
one of the
.B \-AeExX3
options, and may not be combined with
.BR \-m .
.TP
.B \-\-initial\-tab
Output a tab rather than two spaces before the text of a line in normal format.
This causes the alignment of tabs in the line to look normal.
.TP
.BI "\-L " label
.ns
.TP
.BI \-\-label= label
Use the label
.I label
for the brackets output by the
.BR \-A ,
.B \-E
and
.B \-X
options.  This option may be given up to three
times, one for each input file.  The default labels are the names of
the input files.  Thus
.B "diff3 \-L X \-L Y \-L Z \-m A B C"
acts like
.BR "diff3 \-m A B C ,
except that the output looks like it came from
files named
.BR X ,
.B Y
and
.B Z
rather than from files
named
.BR A ,
.B B
and
.BR C .
.TP
.B \-m
.br
.ns
.TP
.B \-\-merge
Apply the edit script to the first file and send the result to standard
output.  Unlike piping the output from
.I diff3
to
.IR ed ,
this
works even for binary files and incomplete lines.
.B \-A
is assumed
if no edit script option is specified.
.TP
.B \-\-overlap\-only
Like
.BR \-e ,
except output only the overlapping changes.
.TP
.B \-\-show\-all
Incorporate all unmerged changes from
.I older
to
.I yours
into
.IR mine ,
surrounding all overlapping changes with bracket lines.
.TP
.B \-\-show\-overlap
Like
.BR \-e ,
except bracket lines from overlapping changes' first
and third files.
.TP
.B \-T
Output a tab rather than two spaces before the text of a line in normal format.
This causes the alignment of tabs in the line to look normal.
.TP
.B \-\-text
Treat all files as text and compare them line-by-line, even if they
do not appear to be text.
.TP
.B \-v
.br
.ns
.TP
.B \-\-version
Output the version number of
.IR diff3 .
.TP
.B \-x
Like
.BR \-e ,
except output only the overlapping changes.
.TP
.B \-X
Like
.BR \-E ,
except output only the overlapping changes.
In other words, like
.BR \-x ,
except bracket changes as in
.BR \-E .
.TP
.B \-3
Like
.BR \-e ,
except output only the nonoverlapping changes.
.SH SEE ALSO
cmp(1), comm(1), diff(1), ed(1), patch(1), sdiff(1).
.SH DIAGNOSTICS
An exit status of 0 means
.I diff3
was successful, 1 means some
conflicts were found, and 2 means trouble.
